package com.ztorn.fiscale.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ztorn.common.core.annotation.Excel;
import com.ztorn.common.core.web.domain.BaseEntity;

/**
 * 退税申报明细对象 fiscale_refund_batch_detail
 * 
 * @author ztorn
 * @date 2025-09-20
 */
public class FiscaleRefundBatchDetail extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 明细ID */
    private Long detailId;

    /** 批次ID */
    @Excel(name = "批次ID")
    private Long batchId;

    /** 配单ID */
    @Excel(name = "配单ID")
    private Long matchingId;

    /** 报关单ID */
    @Excel(name = "报关单ID")
    private Long declarationId;

    /** 发票ID */
    @Excel(name = "发票ID")
    private Long invoiceId;

    /** 退税金额 */
    @Excel(name = "退税金额")
    private BigDecimal refundAmount;

    /** 状态（pending-待处理，processed-已处理） */
    @Excel(name = "状态", readConverterExp = "pending=待处理,processed=已处理")
    private String status;

    // 关联对象
    /** 配单信息 */
    private FiscaleRefundMatching matching;
    
    /** 报关单信息 */
    private FiscaleCustomsDeclaration declaration;
    
    /** 发票信息 */
    private FiscaleTaxInvoice invoice;

    public void setDetailId(Long detailId) 
    {
        this.detailId = detailId;
    }

    public Long getDetailId() 
    {
        return detailId;
    }
    public void setBatchId(Long batchId) 
    {
        this.batchId = batchId;
    }

    public Long getBatchId() 
    {
        return batchId;
    }
    public void setMatchingId(Long matchingId) 
    {
        this.matchingId = matchingId;
    }

    public Long getMatchingId() 
    {
        return matchingId;
    }
    public void setDeclarationId(Long declarationId) 
    {
        this.declarationId = declarationId;
    }

    public Long getDeclarationId() 
    {
        return declarationId;
    }
    public void setInvoiceId(Long invoiceId) 
    {
        this.invoiceId = invoiceId;
    }

    public Long getInvoiceId() 
    {
        return invoiceId;
    }
    public void setRefundAmount(BigDecimal refundAmount) 
    {
        this.refundAmount = refundAmount;
    }

    public BigDecimal getRefundAmount() 
    {
        return refundAmount;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    public FiscaleRefundMatching getMatching() {
        return matching;
    }

    public void setMatching(FiscaleRefundMatching matching) {
        this.matching = matching;
    }

    public FiscaleCustomsDeclaration getDeclaration() {
        return declaration;
    }

    public void setDeclaration(FiscaleCustomsDeclaration declaration) {
        this.declaration = declaration;
    }

    public FiscaleTaxInvoice getInvoice() {
        return invoice;
    }

    public void setInvoice(FiscaleTaxInvoice invoice) {
        this.invoice = invoice;
    }
}